var express = require('express');
var Msdb = require("../../../db/Mysqldb.js");
var router = express.Router();   //可使用 express.Router 类创建模块化、可挂载的路由句柄

var db = new Msdb();

router.post("/insertErrorLog", async function(req, res) { // 插入错误日志
    // 获取数据库连接
    const connection = await db.getConnection();
    var result = {};
    var data = req.body;
    
    try {
        // 截断 error_log 字段至最大 1000 字符，并，并添加截断标记
        if (data.error_log && typeof data.error_log === 'string') {
            const MAX_LENGTH = 1000;
            if (data.error_log.length > MAX_LENGTH) {
                data.error_log = data.error_log.substring(0, MAX_LENGTH - 13) + '[TRUNCATED]';
            }
        }
        
        // 开启事务
        await db.beginTransaction(connection);
        
        // 插入错误日志
        await connection.execute(
            `INSERT INTO error_log (error_log) VALUES (?)`,
            [data.error_log]
        );
        
        // 提交事务
        await db.commit(connection);
        
        res.send(JSON.stringify(result));
    } catch (error) {
        // 回滚事务
        await db.rollback(connection);
        result = {
            code: 500,
            msg: "服务器入错误日志失败"
        };
        res.send(JSON.stringify(result));
    } finally {
        // 释放连接
        connection.release();
    }
});

module.exports = router;